Result: fail
Detail | Value |
---|---|
Returncode | 1 |
Time | 0:00:00.261726 |
Stdout |
Output v[0].e[0].a element 0: expected 1, got -858993460 Output v[0].e[1].a element 0: expected 11, got -858993460 Output v[1].e[0].a element 0: expected 101, got -858993460 Output v[1].e[1].a element 0: expected 111, got -858993460 Output v[0].e[0].b element 0: expected 2.000000, got -107374176.000000 Output v[0].e[1].b element 0: expected 12.000000, got -107374176.000000 Output v[1].e[0].b element 0: expected 102.000000, got -107374176.000000 Output v[1].e[1].b element 0: expected 112.000000, got -107374176.000000 Output v[0].f[0].c element 0: expected 3.000000, got -107374176.000000 Output v[0].f[1].c element 0: expected 13.000000, got -107374176.000000 Output v[1].f[0].c element 0: expected 103.000000, got -107374176.000000 Output v[1].f[1].c element 0: expected 113.000000, got -107374176.000000 Output v[0].f[0].d element 0: expected 4, got -858993460 Output v[0].f[1].d element 0: expected 14, got -858993460 Output v[1].f[0].d element 0: expected 104, got -858993460 Output v[1].f[1].d element 0: expected 114, got -858993460 Vertex shader: #version 150 #define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME #define VARYING(NAME) NAME struct S { int a; float b; }; struct T { float c; int d; }; struct U { S[2] e; T[2] f; }; in vec4 pos; DECLARE_VARYING(out, U[2], v); void main() { gl_Position = pos; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { VARYING(v)[i].e[j].a = 100 * i + 10 * j + 1; VARYING(v)[i].e[j].b = float(100 * i + 10 * j + 2); VARYING(v)[i].f[j].c = float(100 * i + 10 * j + 3); VARYING(v)[i].f[j].d = 100 * i + 10 * j + 4; } } } Fragment shader: #version 150 #define DECLARE_VARYING(DIR, TYPE, NAME) flat DIR TYPE NAME #define VARYING(NAME) NAME struct S { int a; float b; }; struct T { float c; int d; }; struct U { S[2] e; T[2] f; }; DECLARE_VARYING(in, U[2], v); out vec4 color; void main() { bool pass = true; for (int i = 0; i < 2; i++) { for (int j = 0; j < 2; j++) { if (VARYING(v)[i].e[j].a != 100 * i + 10 * j + 1) pass = false; if (VARYING(v)[i].e[j].b != float(100 * i + 10 * j + 2)) pass = false; if (VARYING(v)[i].f[j].c != float(100 * i + 10 * j + 3)) pass = false; if (VARYING(v)[i].f[j].d != 100 * i + 10 * j + 4) pass = false; } } if (pass) color = vec4(0.0, 1.0, 0.0, 1.0); else color = vec4(1.0, 0.0, 0.0, 1.0); } |
Stderr |
SWR detected AVX2 vert shader 0x7f23aa35a000 frag shader 0x7f23aa358000 so shader 0x7f23aa356000 fetch shader 0x7f23aa354000 SWR destroy screen! |
Environment |
PIGLIT_SOURCE_DIR="/home/ilia/src/piglit" PIGLIT_PLATFORM="mixed_glx_egl" |
Command | /home/ilia/src/piglit/bin/ext_transform_feedback-structs array-struct-array-struct run-no-fs -auto -fbo |
dmesg |